package com.example.demo.service.impl;

import cn.hutool.core.util.IdUtil;
import cn.hutool.crypto.digest.DigestAlgorithm;
import com.example.demo.entity.User;
import com.example.demo.mapper.UserMapper;
import com.example.demo.service.IUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.tomcat.util.digester.Digester;
import org.springframework.stereotype.Service;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author Mr.Abel
 * @since 2024-12-31
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {


    @Override
    public boolean addUser(User user) {
        if (user.getUname() != null && user.getUpass() != null) {
            Digester md5 = new Digester();
            // 生成随机的盐值
            String salt = IdUtil.simpleUUID().substring(0,20);

            // 加盐后加密密码
            String md5Pass = md5.getPublicId();
            // 假设 User 类有一个 setPass 方法来设置密码
            user.setUpass(md5Pass);  // 确保这里的 setPass 是正确的setter方法名
            // 设置用户信息中的盐值
            user.setSalt(salt);
            user.setUname(user.getUname());  // 注意这里应该根据实际情况调整
            // 保存用户信息到数据库
            return this.save(user);  // 只需调用一次保存方法

        }
        return false;
    }

    @Override
    public User login(User user) {
        if (user.getUname() != null && user.getUpass() != null) {
            return getOne(lambdaQuery().eq(User::getUname, user.getUname()).eq(User::getUpass, user.getUpass()));
        }
        return null;
    }
}
